<?php

/**
 * This is the model class for table "tbbodegaproducto".
 *
 * The followings are the available columns in table 'tbbodegaproducto':
 * @property integer $Bp_idbp_PK
 * @property string $Pr_idproducto_FK
 * @property integer $Bo_idcodigo_FK
 * @property integer $Bp_cantdespachada
 * @property string $Bp_fechavencimiento
 *
 * The followings are the available model relations:
 * @property Tbbodega $boIdcodigoFK
 * @property Tbproducto $prIdproductoFK
 */
class bodegaSateliteUser extends CActiveRecord
{
	/**
	 * @return string the associated database table name
	 */
	// Agregación de variables publicas para el filtro del grid  de la tabla

	public $ubicacion;
	public $descripcion;
	public $unidad;
	public $fecha_ingreso;
	public $concurso;
	public $cod_proveedor;
	public $proveedor;
	public $precio;
	//public $Us_idusuario_FK;
	public $can_minima;


	public function tableName()
	{
		return 'tbbodegaproducto';
	}

	/**
	 * @return array validation rules for model attributes.
	 */
	public function rules()
	{
		// NOTE: you should only define rules for those attributes that
		// will receive user inputs.
		return array(
			array('Pr_idproducto_FK, Bo_idcodigo_FK, Bp_cantdespachada,Bp_documento', 'required'),
			array('Bo_idcodigo_FK, Bp_cantdespachada, Bp_documento', 'numerical', 'integerOnly'=>true),
			array('Pr_idproducto_FK', 'length', 'max'=>25),
			// The following rule is used by search().
			// @todo Please remove those attributes that should not be searched.
			array('Bp_idbp_PK, Pr_idproducto_FK, Bo_idcodigo_FK, Bp_cantdespachada', 'safe', 'on'=>'search'),
			//agregacion de lasreglas de busqueda conforme laas variables publicas de la relacion bodega
			array('ubicacion,descripcion, unidad, concurso, cod_proveedor, proveedor, precio, can_minima, Bp_documento', 'safe', 'on'=>'search' ),
		);
	}

	/**
	 * @return array relational rules.
	 */
	public function relations()
	{
		// NOTE: you may need to adjust the relation name and the related
		// class name for the relations automatically generated below.
		return array(
			'bodega' => array(self::BELONGS_TO, 'bodegas', 'Bo_idcodigo_FK'),
			'producto' => array(self::BELONGS_TO, 'catalogo', 'Pr_idproducto_FK'),
		);
	}

	/**
	 * @return array customized attribute labels (name=>label)
	 */
	public function attributeLabels()
	{
		return array(
			
			'Pr_idproducto_FK' => 'Código producto',
			'Bo_idcodigo_FK' => 'Bodega',
			'Bp_cantdespachada' => 'Cantidad despachada',
			'Bp_fechavencimiento' => 'Fecha de vencimiento',
			'Bp_fechaingreso'=>'Fecha ingreso',
		    'Bp_documento'=>'Número documento',
		);
	}

	/**
	 * Retrieves a list of models based on the current search/filter conditions.
	 *
	 * Typical usecase:
	 * - Initialize the model fields with values from filter form.
	 * - Execute this method to get CActiveDataProvider instance which will filter
	 * models according to data in model fields.
	 * - Pass data provider to CGridView, CListView or any similar widget.
	 *
	 * @return CActiveDataProvider the data provider that can return the models
	 * based on the search/filter conditions.
	 */
	public function search()
	{
		// @todo Please modify the following code to remove attributes that should not be searched.

		$criteria=new CDbCriteria;
         $criteria->compare('Bp_idbp_PK',$this->Bp_idbp_PK);
		$criteria->compare('Pr_idproducto_FK',$this->Pr_idproducto_FK,true);
		$criteria->compare('Bp_cantdespachada',$this->Bp_cantdespachada);
		//$criteria->compare('Bp_fechavencimiento',$this->Bp_fechavencimiento,true);
		//$criteria->compare('Bp_fechaingreso',$this->Bp_fechaingreso,true);
		$criteria->compare('Bp_documento',$this->Bp_documento,true);
        

		$criteria->with =array('bodega');
       // $criteria->with=array('producto');

		$criteria->compare('bodega.Bo_nombrebodega',$this->Bo_idcodigo_FK,true);
		$criteria->compare('bodega.Us_idusuario_FK',Yii::app()->user->id,true);
		//agregacion de las relaciones
		$criteria->compare('bodega.Bo_ubicacion',$this->ubicacion,true );
		// $criteria->compare('producto.Pr_descripcion',$this->descripcion,true );
		// $criteria->compare('producto.Pr_unidadmedida',$this->unidad,true );
		// // $criteria->compare('producto.Pr_fechaingreso', $this->fecha_ingreso, true );
		// $criteria->compare('producto.Pr_numconcurso',$this->concurso,true );
		// $criteria->compare('producto.Pro_idprovedor_FK',$this->cod_proveedor,true );
		// //$criteria->compare('producto.Pr_casacomercial', $this->proveedor, true );
		// $criteria->compare('producto.Pr_precio',$this->precio,true );
		// $criteria->compare('producto.Pr_cantidadminima',$this->can_minima,true );

		$criteria->together=true;
		
	 	return new CActiveDataProvider($this, array(
			'criteria'=>$criteria,
		));
	}


	/// funciones agregadas el 06-02-2014 para formatear la fecha del cjuidatepicker
		public function beforeSave()
		{
			if(parent::beforeSave())
			{

			//$this->Bp_fechavencimiento= Yii::app()->dateformatter->format("yyyy-MM-dd",$this->Bp_fechavencimiento);
			$this->Bp_fechaingreso= Yii::app()->dateformatter->format("yyyy-MM-dd",$this->Bp_fechaingreso);
			parent::beforeSave();

			return true;
		}
			else return false;
		}

		
		public function afterFind()
		{
				//$this->Bp_fechavencimiento= Yii::app()->dateformatter->format("dd-MM-yyyy",$this->Bp_fechavencimiento);
				$this->Bp_fechaingreso= Yii::app()->dateformatter->format("dd-MM-yyyy",$this->Bp_fechaingreso);
				parent::afterFind();
		}

	public  function GetCategoria()
	{
		/* return  CHtml::listData(catalogo::model()->findAll(), "id","Pr_categoria");*/

		return array('Z'=>'Z','A'=>'A');	
	}

	/**
	 * Returns the static model of the specified AR class.
	 * Please note that you should have this exact method in all your CActiveRecord descendants!
	 * @param string $className active record class name.
	 * @return bodegaSatelite the static model class
	 */
	public static function model($className=__CLASS__)
	{
		return parent::model($className);
	}
}
